/* **********************************
    - Nuevas columnas en afip.afipcom
    
    - Cambio CHECK CONSTRAINT para art.cantlinea


   Ale - 06/04/2021                                             
 ***********************************/

-- afip.afipcom


ALTER TABLE afip.afipcom 
  ADD COLUMN pideperiodoasoc character varying(1) NOT NULL DEFAULT 'N',
  ADD COLUMN pidetransferencia character varying(1) NOT NULL DEFAULT 'N',
  ADD COLUMN pideadicionales character varying(1) NOT NULL DEFAULT 'N',
  ADD COLUMN idambdb integer,
  ADD COLUMN fechainsert timestamp without time zone,
  ADD COLUMN fechaupdate timestamp without time zone;
  
COMMENT ON COLUMN afip.afipcom.pideperiodoasoc IS 'Indica si se debe pedir periodo de cbtes asociados';
COMMENT ON COLUMN afip.afipcom.pideadicionales IS 'Indica si debe pedir adicionales';
COMMENT ON COLUMN afip.afipcom.pidetransferencia IS 'Indica si debe pedir transferencia';


CREATE TRIGGER control_audit_afip_afipcom
  BEFORE INSERT OR UPDATE OR DELETE
  ON afip.afipcom
  FOR EACH ROW
  EXECUTE PROCEDURE public.tg_control_audit_instancia();



-- actualizar valores para cbtes afip

-- los comprobantes de credito y debito NO mipymes deben pedir comprobantes asociados o periodo asociado
UPDATE afip.afipcom SET pidecbtesasoc = 'S' WHERE tipocomafip IN (2,3,7,8,12,13) AND pidecbtesasoc <> 'S';
UPDATE afip.afipcom SET pideperiodoasoc = 'S' WHERE tipocomafip IN (2,3,7,8,12,13);

-- facturas mipymes -> opcional 27 (transferencia) es obligatorio para facturas A, B y C
UPDATE afip.afipcom SET pidetransferencia = 'R' WHERE tipocomafip IN (201, 206, 211);


-- public.comm

ALTER TABLE comm 
  ADD COLUMN afiptransferencia character varying(3),
  ADD COLUMN afipasocfchdde timestamp without time zone,
  ADD COLUMN afipasocfchhta timestamp without time zone,
  ADD COLUMN afipadicionales character varying(5000);

COMMENT ON COLUMN public.comm.afiptransferencia IS 'Codigo modo transferencia';
COMMENT ON COLUMN public.comm.afipasocfchdde  IS 'Periodo cbtes asociados, fecha desde';
COMMENT ON COLUMN public.comm.afipasocfchhta  IS 'Periodo cbtes asociados, fecha hasta';
COMMENT ON COLUMN public.comm.afipadicionales IS 'Campo gral para pasar opcionales key=valor (campo fusible)';


-- ===================================
--   CHECK CONSTRAINT en art.cantlinea
-- ===================================
--    cantLinea = U -> stk unico
--    cantLinea = P -> stk doble - precio sobre cantidad primaria (artm.cant)
--    cantLinea = Q -> stk doble - precio sobre cantidad primaria - El comprobnate puede redefinirla - NUEVO
--    cantLinea = S -> stk doble - precio sobre cantidad secundaria (artm.cantsec)
--    cantLinea = T -> stk doble - precio sobre cantidad secundaria - El comprobnate puede redefinirla - NUEVO

ALTER TABLE art DROP CONSTRAINT gestion_ai_artcantlineacheck;
ALTER TABLE art ADD CONSTRAINT gestion_ai_artcantlineacheck CHECK (cantlinea = 'U' OR cantlinea = 'P' OR cantlinea = 'S' OR cantlinea = 'Q' OR cantlinea = 'T');

COMMENT ON COLUMN public.art.cantlinea IS 'Indica si el articulo tiene stk doble y sobre cual cantidad se aplica el precio. U:stk.Unico(cant); P:stk.dbl(cant); S:stk.dbl(cantsec); Q:stk.dbl(cant-redefinible); T:stk.dbl(cantsec-redefinible)';


-- =================================
SELECT aaVersion('454.00','453.00');
-- =================================